package com.hsmw.schedule.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.hsmw.domain.HsmwConcreteOperate;
import com.hsmw.domain.HsmwConstructionPosition;
import com.hsmw.domain.HsmwUserDriver;
import com.hsmw.domain.HsmwVolumeRecord;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;

@Data
public class IdleVehicleVo implements Serializable {

    @ApiModelProperty(value = "空闲车辆数量")
    private Long freeCount;

    @ApiModelProperty(value = "距离最近位置")
    private String distance;

    @ApiModelProperty(value = "车辆类型")
    private String vehicleType;

    @ApiModelProperty(value = "搅拌站id")
    private String concretePlantId;

    @ApiModelProperty(value = "搅拌站电话")
    private String concretePlantPhone;

    @ApiModelProperty(value = "搅拌站名称")
    private String concreteBatchingPlant;

    @ApiModelProperty(value = "车辆型号")
    private String vehicleModel;

    @ApiModelProperty(value = "项目位置名称")
    private String itemName;

    @ApiModelProperty(value = "项目经度")
    private String itemLng;

    @ApiModelProperty(value = "项目纬度")
    private String itemLat;

    @ApiModelProperty("项目id")
    private String itemId;

    @ApiModelProperty(value = "车牌品牌")
    private String vehicleBrand;


    @ApiModelProperty(value = "车ID")
    private String vehicleId;

    @ApiModelProperty(value = "gps")
    private String imeiNum;

    @ApiModelProperty(value = "车牌号")
    private String vehiclePlate;

    @ApiModelProperty(value = "订单状态")
    private String orderStatus;

    @ApiModelProperty(value = "预计方量")
    private String expectVolume;

    @ApiModelProperty(value = "施工部位")
    private String constructionPosition;

    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
    @ApiModelProperty(value = "到达时间")
    private LocalDateTime reachTime;


    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "订单发布时间")
    private LocalDateTime publishTime;

    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "订单发布时间")
    private LocalDateTime createTime;

    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "订单发布时间")
    private LocalDateTime endTime;

    private String itemPosition;

    @ApiModelProperty("司机信息")
    private List<HsmwUserDriver> driverList;

    @ApiModelProperty(value = "订单id")
    private String orderId;

    @ApiModelProperty(value = "requestId")
    private String requestId;

    private List<PositionAndVehicleVo> positionAndVehicleVos;
    @ApiModelProperty(value = "需求状态")
    private String requestStatus;

    private String ifTruckRequired;
    @ApiModelProperty(value = "混凝土标号信息")
    private String concreteNum;

    @ApiModelProperty(value = "子订单id")
    private String relationId;

    @ApiModelProperty(value = "订单备注")
    private String remark;
    @ApiModelProperty(value = "订单备注")
    private String otherRemark;

    @ApiModelProperty(value = "司机确认方量")
    private String driverVolume;
    @ApiModelProperty(value = "挪泵次数")
    private String movePumpCount;

    private List<RequestVo> positionAndDriverVos;

    private List<HsmwConcreteOperate> hsmwConcreteOperates;
    @ApiModelProperty(value = "司机信息列表")
    private List<com.hsmw.domain.vo.DriverCountVO> driverCountVOS;

    private List<HsmwConstructionPosition> hsmwConstructionPositionList;

    @ApiModelProperty(value = "实时累计方量")
    private Double realTimeVolume;

    @ApiModelProperty(value = "实时方量更新记录")
    private List<HsmwVolumeRecord> recordes;

    @ApiModelProperty(value = "是否已经 确认方量 0. 未确认 1. 已确认")
    private String ensureVolumeFlag;

    @ApiModelProperty(value = "是否为外租泵车")
    private String outsideLeasingFlag;

    @ApiModelProperty(value = "是否为新派车辆")
    private String newVehicleFlag;

    @ApiModelProperty(value = "上报类型")
    private String reportType;

    @ApiModelProperty(value = "上报类型")
    private String driverName;

    @ApiModelProperty(value = "上报类型")
    private String driverUsername;

    @ApiModelProperty(value = "新装gps识别码")
    private String identifyingCode;

    @ApiModelProperty(value = "是否为新装GPS")
    private Integer flag;

}
